package com.suning.sawp.intf.logistics;

import java.util.List;

import com.suning.sawp.dto.esb.CStoreLogisticsQueryResp;
import com.suning.sawp.dto.esb.LogisticsQueryResp;
import com.suning.sawp.dto.yxwt.LogisticsReq;
import com.suning.sawp.vo.logistics.LogisticsRequest;
import com.suning.sawp.vo.logistics.LogisticsVo;

/**
 * 〈一句话功能简述〉物流查询服务<br>
 * 〈功能详细描述〉
 *
 * @author 14060883
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public interface LogisticsService {

    /**
     * 功能描述: 根据PosOrderAndStoreCode 信息查询物流信息<br>
     * 〈功能详细描述〉<br>
     * ESB方式实时查询
     * 
     * @param posOrder POS订单号
     * @param storeCode 门店号
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    LogisticsVo queryLogisticsByPosOrderAndStoreCode(String posOrder, String storeCode);

    /**
     * 
     * 功能描述: <br>
     * 查询c店物流信息
     *
     * @param orderItemNos
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    CStoreLogisticsQueryResp queryCStoreLogistics(List<String> orderItemNos);

    /**
     * 
     * 功能描述: <br>
     * 查询c店物流信息
     *
     * @param orderItemNo
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    LogisticsQueryResp querySelfSupportLogistics(String orderItemNo);

    /**
     * 
     * 功能描述: <br>
     * 1.区分c店还是自营: <br>
     * 2.查询订单详情，根据订单行项目号筛选，包装收货人信息 <br>
     * 3.查询物流信息，包装物流状态信息，对物流描述进行转换，并按照操作时间降序排序
     *
     * @param logisticsRequest
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    LogisticsVo queryLogistics(LogisticsRequest logisticsRequest);

    /**
     * 根据订单行号查询已销未提订单
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param logisticsRequest
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    LogisticsVo queryLogisticsForYxwt(LogisticsReq logisticsRequest);
}
